/*
 * DTDRule.h
 *
 *  Created on: 29 mars 2011
 *      Author: gdoussin
 */

#ifndef DTDRULE_H_
#define DTDRULE_H_

#include <string>
#include <vector>
#include "../commun.h"

class DTDRule
{
	protected :
		Tcardinality cardinality;

	public:
		DTDRule(Tcardinality cardinality = CARD_NONE);

		/**
		* Exporte le noeud sous forme de chaîne de caractère
		*/
		virtual std::string toString() = 0;

		/**
		 * Définit la cartdinalité associée à la règle
		 */
		void setCardinality( Tcardinality cardinality );

		/*
		 * Fonction de validation de la regle
		 * Renvoie true si les balises sont valides par rapport à la regle, faux
		 */
		virtual bool isValid(std::vector< std::string > balises) = 0;

		/**
		 * Renvoie la cardinalité associée à l'élèment
		 */
		Tcardinality getCardinality();
};

#endif /* DTDRULE_H_ */
